;-------------------------------------------------------------LICENSE--------------------------------------------------------------;
;                                                                                                                                  ;
;The MAP code is written in Fortran language for magnetohydrodynamics (MHD) calculation with the adaptive mesh refinement (AMR)    ;
;and Message Passing Interface (MPI) parallelization.                                                                              ;
;                                                                                                                                  ;
;Copyright (C) 2012                                                                                                                ;
;Ronglin Jiang                                                                                                                     ;
;rljiang@ssc.net.cn                                                                                                                ;
;585 Guoshoujing Road. Pudong, Shanghai, P.R.C. 201203                                                                             ;
;                                                                                                                                  ;
;This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License         ;
;as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.             ;
;                                                                                                                                  ;
;This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of    ;
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.                        ;
;                                                                                                                                  ;
;You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software     ;
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.                                                   ;
;                                                                                                                                  ;
;-------------------------------------------------------------LICENSE--------------------------------------------------------------;

pro t3dvv, vector0, vector1
;=====================================================================================================================|
;  Purpose
;    rotate from vector0 to vector1, and stores the result in !p.t
;
;  Syntax
;    t3dvv,vector0,vector1
;
;  Inputs
;    vector0, vector1
;
;  Outputs
;    the transform matrix is stored in !p.t
;
;  Examples
; 
;  History
;    2010-07-19 written by R. L. Jiang at Kwasan Observatory
;    
;  Bug report
;    rljiang@nju.edu.cn
;=====================================================================================================================|

vector = vector0/sqrt(total(vector0^2)+1d-12)

theta = asin(vector[2])*180/!pi
phi = atan(vector[1], vector[0])*180/!pi

t3d,rotate = [0, theta, -phi]

vector = vector1/sqrt(total(vector1^2)+1d-12)

theta = asin(vector[2])*180/!pi
phi = atan(vector[1],vector[0])*180/!pi

t3d, rotate = [0, -theta, phi]

end